/**
 * 获取页面解析信息
 */
(function ({ UID, IP, PID, MID }, headers) {
  // 验证用户
  if (!UID) throw Error("无效会话");

  let user = A.card('B.用户').load(UID);
  const menu = MID ? A.card.子系统菜单.load(MID) ?? {} : {};
  const page = A.card.子系统页面.load(PID);
  if (!page) throw Error("指定ID的页面信息不存在");

  // 记录页面访问审计信息
  A.card('B.访问审计').save({
    来源地址: IP,
    用户名: user.用户名,
    子系统菜单: menu.ID,
    菜单名称: menu.名称,
    子系统页面: page.ID,
    页面名称: page.名称,
  }, UID);

  // 如果是元数据页面, 还要追加上元数据内容
  if (page.解析方式 === 1 && page.解析内容) {
    const meta = A.card.页面.load(page.解析内容);
    if (!meta) throw Error("解析内容指定的页面不存在");
    page.元数据类型 = meta.类型;
    page.元数据 = meta.元数据;
  }

  return page;
});